Virtual machine explained